package com.gpframework.module.wages.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @ClassName GzAttendanceManagementVo
 * @Author gpframework
 * @Date 2024-01-19
 * @Version 1.0.0
 * @Description 考勤管理Vo对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class GzAttendanceManagementExcel {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @ApiModelProperty("${column.columnComment}")
    private Long id;

    /** 月份 */
    @Excel(name = "月份", width = 30, dateFormat = "yyyy-MM")
    @JsonFormat(pattern = "yyyy-MM")
    @ApiModelProperty("月份")
    private Date month;

    /** 部门 */
    @Excel(name = "部门")
    @ApiModelProperty("部门")
    private String departmentName;

    ///** 用户id */
    ////@Excel(name = "用户id")
    //@ApiModelProperty("用户id")
    //private Long userId;

    /** 名字 */
    @Excel(name = "名字")
    @ApiModelProperty("名字")
    private String name;

    /** 入职日期 */
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("入职日期")
    private Date joinedDate;

    /** 出勤天数 */
    @Excel(name = "出勤天数")
    @ApiModelProperty("出勤天数")
    private Double attendanceDays;

    /** 全勤奖金 */
    @Excel(name = "全勤奖金")
    @ApiModelProperty("全勤奖金")
    private BigDecimal fullAttendanceBonus;

    /** 加班津贴/迟到扣款 */
    @Excel(name = "加班津贴/迟到扣款")
    @ApiModelProperty("加班津贴/迟到扣款")
    private BigDecimal overtimeLate;

    /** 餐费扣款 */
    @Excel(name = "餐费扣款")
    @ApiModelProperty("餐费扣款")
    private BigDecimal mealFeeDeduction;

    /** 新增高温补贴 */
    @Excel(name = "新增高温补贴")
    @ApiModelProperty("新增高温补贴")
    private BigDecimal increaseTemperatureSubsidy;

    /** 差旅补贴 */
    @Excel(name = "差旅补贴")
    @ApiModelProperty("差旅补贴")
    private BigDecimal travelSubsidy;

    /** 其他补贴 */
    @Excel(name = "其他补贴")
    @ApiModelProperty("其他补贴")
    private BigDecimal otherSubsidies;

    /** 排序 */
    //@Excel(name = "排序")
    @ApiModelProperty("排序")
    private Long sort;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remarks;

    /** 创建者 */
    @ApiModelProperty("创建者")
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;


    /**
     * 下标
     */
    @ApiModelProperty("下标")
    private int subscript;

    /**
     * 导入提示
     */
    @ApiModelProperty("导入提示")
    private String msg;

    public static List<GzAttendanceManagementExcel> list() {
        List<GzAttendanceManagementExcel> list = new ArrayList<>();
        list.add(new GzAttendanceManagementExcel());
        return list;
    }

}
